import AS3.ConvertedEmission;
import AS3.CountryEmission;
import AS3.Country;

import AS3.constants.Coefficients;

import flash.sampler._getInvocationCount;

import mx.controls.Alert;
import mx.core.FlexGlobals;
import mx.effects.Resize;
import mx.formatters.NumberBaseRoundType;
import mx.formatters.NumberFormatter;

//Przechowuje najwyzszą wartośc emisji w danej chwili - służy do okreslania wyskości linii na wykresie
private var max_wartosc_tony:Number = 0;
private var Emisja_srednia_akt:Number = new Number(0);

//Oznacza czy mamy obliczanie wartości "NOWA" czy "TWOJA"
private var nowa_slupek:Boolean = false;
// Przecowuje wartość emisji dla pierwszego słupka

private var yourEmissionResult:Number = 0;

private var rsImgBudowaIUtrzymanie:Resize;
private var rsImgBudowaIUtrzymanie0:Resize;
private var rsimgOgrzewanie:Resize;
private var rsimgOgrzewanie0:Resize;
private var rsimgCieplaWoda:Resize;
private var rsimgCieplaWoda0:Resize;
private var rsimgKlimatyzacja:Resize;
private var rsimgKlimatyzacja0:Resize;
private var rsimgSpalaniePaliw:Resize;
private var rsimgSpalaniePaliw0:Resize;
private var rsimgProdukcjaSamochodow:Resize;
private var rsimgProdukcjaSamochodow0:Resize;
private var rsimgPubliczny:Resize;
private var rsimgPubliczny0:Resize;
private var rsimgPrzeloty:Resize;
private var rsimgPrzeloty0:Resize;
private var rsimgZywnosc:Resize;
private var rsimgZywnosc0:Resize;
private var rsimgKonsumpcja:Resize;
private var rsimgKonsumpcja0:Resize;
private var rsimgElektrycznosc:Resize;
private var rsimgElektrycznosc0:Resize;
private var rsimgWylesianie:Resize;
private var rsimgWylesianie0:Resize;
private var rsimgOgolnospoleczne:Resize;
private var rsimgOgolnospoleczne0:Resize;

//To samo dla emisji słupków średniej
//private var rsimg_srednia_niebieski:Resize;
//private var rsimg_srednia_zolty:Resize;
//private var rsimg_srednia_czerwony:Resize;

private var rsimg_srednia:Resize;
private var rsimg_srednia_eksport:Resize;


public function plotEmissions(oldEmission:ConvertedEmission, newEmission:ConvertedEmission,chosenCountry:Country, optimize:Boolean):void {
    var tonneHeightPx:Number = calcTonneHeight(optimize ? newEmission.overallEmission : oldEmission.overallEmission,oldEmission.averageEmission,oldEmission.exportEmission);


    if(!optimize){

        hideNew();

        changeOldSize(oldEmission.general, oldEmission.deforestation, oldEmission.electricity,
                oldEmission.consumption, oldEmission.food, oldEmission.flights,
                oldEmission.publicTransport, oldEmission.carProduction, oldEmission.fuelBurnings,
                oldEmission.airCondition, oldEmission.warmWater, oldEmission.heating,
                oldEmission.maintenance, tonneHeightPx);

        setAbsoluteEmissionLabelValue(oldEmission.general, oldEmission.deforestation, oldEmission.electricity,
                oldEmission.consumption, oldEmission.food, oldEmission.flights,
                oldEmission.publicTransport, oldEmission.carProduction, oldEmission.fuelBurnings,
                oldEmission.airCondition, oldEmission.warmWater, oldEmission.heating,
                oldEmission.maintenance);

    }
    else {

        displayNew();

        changeOldSize(oldEmission.general,oldEmission.deforestation,oldEmission.electricity,
                oldEmission.consumption,oldEmission.food,oldEmission.flights,
                oldEmission.publicTransport,oldEmission.carProduction,oldEmission.fuelBurnings,
                oldEmission.airCondition,oldEmission.warmWater,oldEmission.heating,
                oldEmission.maintenance,tonneHeightPx);

        resizeNew(newEmission.general,newEmission.deforestation,newEmission.electricity,
                newEmission.consumption,newEmission.food,newEmission.flights,
                newEmission.publicTransport,newEmission.carProduction,newEmission.fuelBurnings,
                newEmission.airCondition,newEmission.warmWater,newEmission.heating,
                newEmission.maintenance,tonneHeightPx);

        setAbsoluteEmissionLabelValue(newEmission.general,newEmission.deforestation,newEmission.electricity,
                newEmission.consumption,newEmission.food,newEmission.flights,
                newEmission.publicTransport,newEmission.carProduction,newEmission.fuelBurnings,
                newEmission.airCondition,newEmission.warmWater,newEmission.heating,
                newEmission.maintenance);
    }

    // Ustalamy wysokości słupków średniej oraz wysokości flag.

    resizePlotColumns(tonneHeightPx, oldEmission.averageEmission, oldEmission.exportEmission, oldEmission.emissionEU, oldEmission.emissionUS);
    calcPlotScale(max_wartosc_tony, tonneHeightPx);


    //Ustawiamy zuzycie paliw kopalnych

    var format:NumberFormatter = new NumberFormatter();
    format.precision = 0;
    format.rounding = NumberBaseRoundType.NEAREST;


    //Dla sumy wypisywanej

    var coalConsumption:Number = optimize ? newEmission.coalConsumption : oldEmission.coalConsumption;
    var oilConsumption:Number = optimize ? newEmission.oilConsumption : oldEmission.oilConsumption;
    var gasConsumption:Number = optimize ? newEmission.gasConsumption : oldEmission.gasConsumption;


    lblZuzycieWegiel.text = format.format(coalConsumption).toString().replace(",", "");
    lblZuzycieRopa.text = format.format(oilConsumption).toString().replace(",", "");
    lblZuzycieGaz.text = format.format(gasConsumption).toString().replace(",", "");


    var kwh_CO2_coal:Number = Coefficients.KWh_TONNE_CO2_COAL;
    var kwh_CO2_oil:Number = Coefficients.KWh_TONNE_CO2_OIL;
    var kwh_CO2_gas:Number = Coefficients.KWh_TONNE_CO2_GAS;

    format.precision = 2;

    var gasEmission:Number = optimize ? newEmission.gasEmission : oldEmission.gasEmission;
    var oilEmission:Number = optimize ? newEmission.oilEmission : oldEmission.oilEmission;
    var coalEmission:Number = optimize ? newEmission.coalEmission : oldEmission.coalEmission;

    lblEnergiaWegiel.text = format.format(chosenCountry.coalEnergy * kwh_CO2_coal * coalEmission / 365).toString();
    lblEnergiaRopa.text = format.format(chosenCountry.oilEnergy * kwh_CO2_oil * oilEmission / 365).toString();
    lblEnergiaGaz.text = format.format(chosenCountry.gasEnergy * kwh_CO2_gas * gasEmission / 365).toString();


}



//Zamrażmy słupek "Twoja" i zmieniamy "Nowa"
public function displayNew():void {
    nowa_slupek = true;
    lblNowa.visible = true;
    tlo1.visible = true;
    imgBudowaIUtrzymanie0.visible = true;
    imgOgrzewanie0.visible = true;
    imgCieplaWoda0.visible = true;
    imgKlimatyzacja0.visible = true;
    imgSpalaniePaliw0.visible = true;
    imgProdukcjaSamochodow0.visible = true;
    imgPubliczny0.visible = true;
    imgPrzeloty0.visible = true;
    imgZywnosc0.visible = true;
    imgKonsumpcja0.visible = true;
    imgElektrycznosc0.visible = true;
    imgWylesianie0.visible = true;
    imgOgolnospoleczne0.visible = true;

}

//Chowamy słupek "Nowa
private function hideNew():void {
    nowa_slupek = false;
    lblNowa.visible = false
    tlo1.visible = false;
    imgBudowaIUtrzymanie0.visible = false;
    imgOgrzewanie0.visible = false;
    imgCieplaWoda0.visible = false;
    imgKlimatyzacja0.visible = false;
    imgSpalaniePaliw0.visible = false;
    imgProdukcjaSamochodow0.visible = false;
    imgPubliczny0.visible = false;
    imgPrzeloty0.visible = false;
    imgZywnosc0.visible = false;
    imgKonsumpcja0.visible = false;
    imgElektrycznosc0.visible = false;
    imgWylesianie0.visible = false;
    imgOgolnospoleczne0.visible = false;
}
// Funkcja zmienia rozmiar prawego słupka z emisją użytkownika "TWOJA"
private function changeOldSize(general:Number, deforestation:Number, electricity:Number, consumption:Number, food:Number, flights:Number, publicTransport:Number, carProduction:Number, fuelBurnings:Number, airCondition:Number, warmWater:Number, heating:Number, maintenance:Number, tonneHeightPx:Number):void {

    var msDuration:Number = 1;
    var height:Number = 0;

    rsImgBudowaIUtrzymanie = new Resize(imgBudowaIUtrzymanie);
    rsimgOgrzewanie = new Resize(imgOgrzewanie);
    rsimgCieplaWoda = new Resize(imgCieplaWoda);
    rsimgKlimatyzacja = new Resize(imgKlimatyzacja);
    rsimgSpalaniePaliw = new Resize(imgSpalaniePaliw);
    rsimgProdukcjaSamochodow = new Resize(imgProdukcjaSamochodow);
    rsimgPubliczny = new Resize(imgPubliczny);
    rsimgPrzeloty = new Resize(imgPrzeloty);
    rsimgZywnosc = new Resize(imgZywnosc);
    rsimgKonsumpcja = new Resize(imgKonsumpcja);
    rsimgElektrycznosc = new Resize(imgElektrycznosc);
    rsimgWylesianie = new Resize(imgWylesianie);
    rsimgOgolnospoleczne = new Resize(imgOgolnospoleczne);


    rsImgBudowaIUtrzymanie.duration = msDuration;
    rsimgOgrzewanie.duration = msDuration;
    rsimgCieplaWoda.duration = msDuration;
    rsimgKlimatyzacja.duration = msDuration;
    rsimgSpalaniePaliw.duration = msDuration;
    rsimgProdukcjaSamochodow.duration = msDuration;
    rsimgPubliczny.duration = msDuration;
    rsimgPrzeloty.duration = msDuration;
    rsimgZywnosc.duration = msDuration;
    rsimgKonsumpcja.duration = msDuration;
    rsimgElektrycznosc.duration = msDuration;
    rsimgWylesianie.duration = msDuration;
    rsimgOgolnospoleczne.duration = msDuration;


    height += (general * tonneHeightPx);

    rsimgOgolnospoleczne.heightFrom = imgOgolnospoleczne.height;
    rsimgOgolnospoleczne.heightTo = height;

    height += (deforestation * tonneHeightPx);

    rsimgWylesianie.heightFrom = imgWylesianie.height;
    rsimgWylesianie.heightTo = height;

    height += (electricity * tonneHeightPx);

    rsimgElektrycznosc.heightFrom = imgElektrycznosc.height;
    rsimgElektrycznosc.heightTo = height;

    height += (consumption * tonneHeightPx);

    rsimgKonsumpcja.heightFrom = imgKonsumpcja.height;
    rsimgKonsumpcja.heightTo = height;

    height += (food * tonneHeightPx);

    rsimgZywnosc.heightFrom = imgZywnosc.height;
    rsimgZywnosc.heightTo = height;

    height += (flights * tonneHeightPx);

    rsimgPrzeloty.heightFrom = imgPrzeloty.height;
    rsimgPrzeloty.heightTo = height;

    height += (publicTransport * tonneHeightPx);

    rsimgPubliczny.heightFrom = imgPubliczny.height;
    rsimgPubliczny.heightTo = height;

    height += (carProduction * tonneHeightPx);

    rsimgProdukcjaSamochodow.heightFrom = imgProdukcjaSamochodow.height;
    rsimgProdukcjaSamochodow.heightTo = height;

    height += (fuelBurnings * tonneHeightPx);

    rsimgSpalaniePaliw.heightFrom = imgSpalaniePaliw.height;
    rsimgSpalaniePaliw.heightTo = height;

    height += (airCondition * tonneHeightPx);

    rsimgKlimatyzacja.heightFrom = imgKlimatyzacja.height;
    rsimgKlimatyzacja.heightTo = height;

    height += (warmWater * tonneHeightPx);

    rsimgCieplaWoda.heightFrom = imgCieplaWoda.height;
    rsimgCieplaWoda.heightTo = height;

    height += (heating * tonneHeightPx);

    rsimgOgrzewanie.heightFrom = imgOgrzewanie.height;
    rsimgOgrzewanie.heightTo = height;

    height += (maintenance * tonneHeightPx);

    rsImgBudowaIUtrzymanie.heightFrom = imgBudowaIUtrzymanie.height;
    rsImgBudowaIUtrzymanie.heightTo = height;


    /**Kończymy wprowadzanie zmian i odtwarzamy je**/
    rsImgBudowaIUtrzymanie.end();
    rsimgOgrzewanie.end();
    rsimgCieplaWoda.end();
    rsimgKlimatyzacja.end();
    rsimgSpalaniePaliw.end();
    rsimgProdukcjaSamochodow.end();
    rsimgPubliczny.end();
    rsimgPrzeloty.end();
    rsimgZywnosc.end();
    rsimgKonsumpcja.end();
    rsimgElektrycznosc.end();
    rsimgWylesianie.end();
    rsimgOgolnospoleczne.end();

    rsImgBudowaIUtrzymanie.play();
    rsimgOgrzewanie.play();
    rsimgCieplaWoda.play();
    rsimgKlimatyzacja.play();
    rsimgSpalaniePaliw.play();
    rsimgProdukcjaSamochodow.play();
    rsimgPubliczny.play();
    rsimgPrzeloty.play();
    rsimgZywnosc.play();
    rsimgKonsumpcja.play();
    rsimgElektrycznosc.play();
    rsimgWylesianie.play();
    rsimgOgolnospoleczne.play();




}
// Funkcja zmienia rozmiar lewego słupka z emisją użytkownika "NOWA"
private function resizeNew(CO2_Ogolnospoleczne_height:Number, CO2_Wylesianie_height:Number, CO2_Elektrycznosc_height:Number, CO2_Konsumpcja_height:Number, CO2_Zywnosc_height:Number, CO2_Przeloty_height:Number, CO2_Publiczny_height:Number, CO2_ProdukcjaSamochodow_height:Number, CO2_SpalaniePaliw_height:Number, CO2_Klimatyzacja_height:Number, CO2_CieplaWoda_height:Number, CO2_Ogrzewanie_height:Number, CO2_BudowaIUtrzymanie_height:Number, tona_wysokosc_px:Number):void {

    var czasTrwania_milisekundy:Number = 1;
    var wysokosc:Number = 0;

    rsImgBudowaIUtrzymanie0 = new Resize(imgBudowaIUtrzymanie0);
    rsimgOgrzewanie0 = new Resize(imgOgrzewanie0);
    rsimgCieplaWoda0 = new Resize(imgCieplaWoda0);
    rsimgKlimatyzacja0 = new Resize(imgKlimatyzacja0);
    rsimgSpalaniePaliw0 = new Resize(imgSpalaniePaliw0);
    rsimgProdukcjaSamochodow0 = new Resize(imgProdukcjaSamochodow0);
    rsimgPubliczny0 = new Resize(imgPubliczny0);
    rsimgPrzeloty0 = new Resize(imgPrzeloty0);
    rsimgZywnosc0 = new Resize(imgZywnosc0);
    rsimgKonsumpcja0 = new Resize(imgKonsumpcja0);
    rsimgElektrycznosc0 = new Resize(imgElektrycznosc0);
    rsimgWylesianie0 = new Resize(imgWylesianie0);
    rsimgOgolnospoleczne0 = new Resize(imgOgolnospoleczne0);


    rsImgBudowaIUtrzymanie0.duration = czasTrwania_milisekundy;
    rsimgOgrzewanie0.duration = czasTrwania_milisekundy;
    rsimgCieplaWoda0.duration = czasTrwania_milisekundy;
    rsimgKlimatyzacja0.duration = czasTrwania_milisekundy;
    rsimgSpalaniePaliw0.duration = czasTrwania_milisekundy;
    rsimgProdukcjaSamochodow0.duration = czasTrwania_milisekundy;
    rsimgPubliczny0.duration = czasTrwania_milisekundy;
    rsimgPrzeloty0.duration = czasTrwania_milisekundy;
    rsimgZywnosc0.duration = czasTrwania_milisekundy;
    rsimgKonsumpcja0.duration = czasTrwania_milisekundy;
    rsimgElektrycznosc0.duration = czasTrwania_milisekundy;
    rsimgWylesianie0.duration = czasTrwania_milisekundy;
    rsimgOgolnospoleczne0.duration = czasTrwania_milisekundy;


    wysokosc += (CO2_Ogolnospoleczne_height * tona_wysokosc_px);

    rsimgOgolnospoleczne0.heightFrom = imgOgolnospoleczne0.height;
    rsimgOgolnospoleczne0.heightTo = wysokosc;

    wysokosc += (CO2_Wylesianie_height * tona_wysokosc_px);

    rsimgWylesianie0.heightFrom = imgWylesianie0.height;
    rsimgWylesianie0.heightTo = wysokosc;

    wysokosc += (CO2_Elektrycznosc_height * tona_wysokosc_px);

    rsimgElektrycznosc0.heightFrom = imgElektrycznosc0.height;
    rsimgElektrycznosc0.heightTo = wysokosc;

    wysokosc += (CO2_Konsumpcja_height * tona_wysokosc_px);

    rsimgKonsumpcja0.heightFrom = imgKonsumpcja0.height;
    rsimgKonsumpcja0.heightTo = wysokosc;

    wysokosc += ( CO2_Zywnosc_height * tona_wysokosc_px);

    rsimgZywnosc0.heightFrom = imgZywnosc0.height;
    rsimgZywnosc0.heightTo = wysokosc;

    wysokosc += (CO2_Przeloty_height * tona_wysokosc_px);

    rsimgPrzeloty0.heightFrom = imgPrzeloty0.height;
    rsimgPrzeloty0.heightTo = wysokosc;

    wysokosc += (CO2_Publiczny_height * tona_wysokosc_px);

    rsimgPubliczny0.heightFrom = imgPubliczny0.height;
    rsimgPubliczny0.heightTo = wysokosc;

    wysokosc += (CO2_ProdukcjaSamochodow_height * tona_wysokosc_px);

    rsimgProdukcjaSamochodow0.heightFrom = imgProdukcjaSamochodow0.height;
    rsimgProdukcjaSamochodow0.heightTo = wysokosc;

    wysokosc += (CO2_SpalaniePaliw_height * tona_wysokosc_px);

    rsimgSpalaniePaliw0.heightFrom = imgSpalaniePaliw0.height;
    rsimgSpalaniePaliw0.heightTo = wysokosc;

    wysokosc += (CO2_Klimatyzacja_height * tona_wysokosc_px);

    rsimgKlimatyzacja0.heightFrom = imgKlimatyzacja0.height;
    rsimgKlimatyzacja0.heightTo = wysokosc;

    wysokosc += (CO2_CieplaWoda_height * tona_wysokosc_px);

    rsimgCieplaWoda0.heightFrom = imgCieplaWoda0.height;
    rsimgCieplaWoda0.heightTo = wysokosc;

    wysokosc += (CO2_Ogrzewanie_height * tona_wysokosc_px);

    rsimgOgrzewanie0.heightFrom = imgOgrzewanie0.height;
    rsimgOgrzewanie0.heightTo = wysokosc;

    wysokosc += (CO2_BudowaIUtrzymanie_height * tona_wysokosc_px);

    rsImgBudowaIUtrzymanie0.heightFrom = imgBudowaIUtrzymanie0.height;
    rsImgBudowaIUtrzymanie0.heightTo = wysokosc;

    /**Kończymy wprowadzanie zmian i odtwarzamy je**/
    rsImgBudowaIUtrzymanie0.end();
    rsimgOgrzewanie0.end();
    rsimgCieplaWoda0.end();
    rsimgKlimatyzacja0.end();
    rsimgSpalaniePaliw0.end();
    rsimgProdukcjaSamochodow0.end();
    rsimgPubliczny0.end();
    rsimgPrzeloty0.end();
    rsimgZywnosc0.end();
    rsimgKonsumpcja0.end();
    rsimgElektrycznosc0.end();
    rsimgWylesianie0.end();
    rsimgOgolnospoleczne0.end();

    rsImgBudowaIUtrzymanie0.play();
    rsimgOgrzewanie0.play();
    rsimgCieplaWoda0.play();
    rsimgKlimatyzacja0.play();
    rsimgSpalaniePaliw0.play();
    rsimgProdukcjaSamochodow0.play();
    rsimgPubliczny0.play();
    rsimgPrzeloty0.play();
    rsimgZywnosc0.play();
    rsimgKonsumpcja0.play();
    rsimgElektrycznosc0.play();
    rsimgWylesianie0.play();
    rsimgOgolnospoleczne0.play();
}

//Funkcja oblicza wysokość tony 
private function calcTonneHeight(absolute:Number, avg:Number, exportEmission:Number):Number {
    var plotHeightPx:Number = 260;
    var tonneHeightPx:Number = 0;
    var avgEmission:Number = avg + exportEmission;

    if (!nowa_slupek) {
        yourEmissionResult = absolute;
    }

    if (yourEmissionResult >= absolute && yourEmissionResult > avgEmission) {
        tonneHeightPx = plotHeightPx / yourEmissionResult;
        max_wartosc_tony = yourEmissionResult;
    }
    else if (absolute > yourEmissionResult && absolute > avgEmission) {
        tonneHeightPx = plotHeightPx / absolute;
        max_wartosc_tony = absolute;
    }
    else if (avgEmission > yourEmissionResult && avgEmission > absolute) {
        tonneHeightPx = plotHeightPx / avgEmission;
        max_wartosc_tony = avgEmission;
    }
    else if (yourEmissionResult == absolute && yourEmissionResult == avgEmission) {
        tonneHeightPx = plotHeightPx / yourEmissionResult;
        max_wartosc_tony = yourEmissionResult;
    }
    else if (yourEmissionResult < absolute && absolute == avgEmission) {
        tonneHeightPx = plotHeightPx / absolute;
        max_wartosc_tony = absolute;
    }

    return tonneHeightPx;
}


private function resizePlotColumns(tonneHeightPx:Number,emissionAvg:Number,exportEmission:Number,emissionEU:Number,emissionUS:Number):void{
    //sredniaEmisja:Number, emisjaEksport:Number
//emisje.Get_Emisja_srednia(text_combo), emisje.Get_Emisja_eksport(text_combo)

    var czasTrwania_milisekundy:Number = 1;
    var wysokosc:Number = 0;
//img_srednia_eksport

    //rsimg_srednia_niebieski= new Resize(img_srednia_niebieski);
    //rsimg_srednia_zolty= new Resize(img_srednia_zolty);
    //rsimg_srednia_czerwony= new Resize(img_srednia_czerwony);

    rsimg_srednia_eksport = new Resize(img_srednia_eksport);
    rsimg_srednia = new Resize(img_srednia);

    //rsimg_srednia_niebieski.duration = czasTrwania_milisekundy;
    //rsimg_srednia_zolty.duration = czasTrwania_milisekundy;
    //rsimg_srednia_czerwony.duration = czasTrwania_milisekundy;

    rsimg_srednia_eksport.duration = czasTrwania_milisekundy;
    rsimg_srednia.duration = czasTrwania_milisekundy;

    wysokosc = (emissionAvg * tonneHeightPx);
    rsimg_srednia.heightFrom = img_srednia.height;
    rsimg_srednia.heightTo = wysokosc;

    //img_srednia_eksport.y = 301
    //img_srednia_eksport.y = img_srednia_eksport.y - wysokosc

    wysokosc = ((exportEmission + emissionAvg) * tonneHeightPx);
    rsimg_srednia_eksport.heightFrom = img_srednia_eksport.height;
    rsimg_srednia_eksport.heightTo = wysokosc;


    rsimg_srednia.end();
    rsimg_srednia_eksport.end();
    //rsimg_srednia_czerwony.end();

    //rsimg_srednia_niebieski.play();
    //rsimg_srednia_zolty.play();
    //rsimg_srednia_czerwony.play();
    rsimg_srednia.play();
    rsimg_srednia_eksport.play();

    if (tonneHeightPx * emissionEU > 300) {
        imgEU0.y = 384;
        imgEU0.visible = false;
    }
    else {
        imgEU0.y = 384 - tonneHeightPx * emissionEU;
        imgEU0.visible = true;
    }
    if (tonneHeightPx * emissionUS > 300) {
        imgUSA0.y = 384;
        imgUSA0.visible = false;
    }
    else {
        imgUSA0.y = 384 - (tonneHeightPx * emissionUS);
        imgUSA0.visible = true;
    }
}



private function calcPlotScale(higherValue:Number, tonne:Number):void {
    var step:Number = new Number(0);
    var scale:Array = new Array();
    var horizontalBars:Array = new Array();

    scale.push(lblSkala1);
    scale.push(lblSkala2);
    scale.push(lblSkala3);
    scale.push(lblSkala4);
    scale.push(lblSkala5);
    scale.push(lblSkala6);
    scale.push(lblSkala7);
    scale.push(lblSkala8);
    scale.push(lblSkala9);
    scale.push(lblSkala10);

    horizontalBars.push(Hrule1);
    horizontalBars.push(Hrule2);
    horizontalBars.push(Hrule3);
    horizontalBars.push(Hrule4);
    horizontalBars.push(Hrule5);
    horizontalBars.push(Hrule6);
    horizontalBars.push(Hrule7);
    horizontalBars.push(Hrule8);
    horizontalBars.push(Hrule9);
    horizontalBars.push(Hrule10);

    for (var i:int = 0; i < 10; i++) {
        scale[i].visible = true;
        horizontalBars[i].visible = true;
    }

    if (higherValue < 10) {
        step = 1;
    }
    if (higherValue >= 10) {
        step = 2;
    }
    if (higherValue >= 20) {
        step = 3;
    }
    if (higherValue >= 30) {
        step = 5;
    }
    if (higherValue >= 50) {
        step = 10;
    }
    if (higherValue >= 100) {
        step = 20;
    }
    if (higherValue >= 200) {
        step = 40;
    }
    if (higherValue >= 400) {
        step = 50;
    }
    if (higherValue >= 500) {
        step = 100;
    }
    if (higherValue >= 1000) {
        step = 200;
    }
    if (higherValue >= 2000) {
        step = 400;
    }
    if (higherValue >= 5000) {
        step = 1000;
    }
    if (higherValue >= 10000) {
        step = 2000;
    }
    if (higherValue >= 20000) {
        step = 3000;
    }
    if (higherValue >= 40000) {
        step = 5000;
    }
    if (higherValue >= 50000) {
        step = 10000;
    }
    if (higherValue >= 100000) {
        step = 20000;
    }
    if (higherValue >= 200000) {
        step = 40000;
    }
    if (higherValue >= 400000) {
        step = 50000;
    }
    if (higherValue >= 500000) {
        step = 100000;
    }
    if (higherValue >= 1000000) {
        step = 200000;
    }
    if (higherValue >= 2000000) {
        step = 400000;
    }
    if (higherValue >= 5000000) {
        step = 1000000;
    }

    var y:Number = new Number(0);

    for (i = 0; i < 10; i++) {
        y = 391 - tonne * step * i;
        if (y < 90) {
            scale[i].visible = false;
            horizontalBars[i].visible = false;
        }
        else {
            scale[i].y = y;
            scale[i].text = step * (i);
            horizontalBars[i].y = y + 8;
        }
    }
}

private function setAbsoluteEmissionLabelValue(community:Number, deforestation:Number, electricity:Number, consumption:Number, food:Number, flights:Number, publicTransport:Number, carProduction:Number, fossilFuelBurnings:Number, airCondition:Number, warmWater:Number, heating:Number, maintenance:Number):void {
    var CO2_Array:Array = new Array();
    //var suma:Number = new Number(0);
    var ipxArray:Array = new Array();

    ipxArray.push(ipxOgolnospoleczne);
    ipxArray.push(ipxWylesianie);
    ipxArray.push(ipxElektrycznosc);
    ipxArray.push(ipxKonsumpcja);
    ipxArray.push(ipxZywnosc);
    ipxArray.push(ipxPrzeloty);
    ipxArray.push(ipxPubliczny);
    ipxArray.push(ipxProdukcjaSamochodow);
    ipxArray.push(ipxSpalaniePaliwa);
    ipxArray.push(ipxKlimatyzacja);
    ipxArray.push(ipxCieplaWoda);
    ipxArray.push(ipxOgrzewanie);
    ipxArray.push(ipxBudowaiUtrzymanie);

    CO2_Array.push(community);
    CO2_Array.push(deforestation);
    CO2_Array.push(electricity);
    CO2_Array.push(consumption);
    CO2_Array.push(food);
    CO2_Array.push(flights);
    CO2_Array.push(publicTransport);
    CO2_Array.push(carProduction);
    CO2_Array.push(fossilFuelBurnings);
    CO2_Array.push(airCondition);
    CO2_Array.push(warmWater);
    CO2_Array.push(heating);
    CO2_Array.push(maintenance);


    var noCommasStr:String = new String("");
    var format:NumberFormatter = new NumberFormatter();
    format.precision = 2;
    format.rounding = NumberBaseRoundType.NEAREST;

    //Dla sumy wypisywanej
    var absValue:Number = 0;

    for (var i:int = 0; i < 13; i++) {
        if (CO2_Array[i].valueOf() > 100) {
            format.precision = 0;
        }
        else {
            format.precision = 2;
        }
        ipxArray[i].text = format.format(CO2_Array[i]);
        noCommasStr = format.format(CO2_Array[i]);
        noCommasStr = noCommasStr.replace(",", "");
        absValue += Number(noCommasStr);
    }
    if (absValue.valueOf() > 100) {
        format.precision = 0;
    }
    else {
        format.precision = 2;
    }
    ipxEmisjaSumaryczna.text = format.format(absValue);
}







